TheoExpiryPtSkew
TheoExpiryPtSkew records carry the skew curve of a TheoExpirySurface record with the same key (ekey + theoModel + clientFirm) as x/y points, used when the surface's skewSource = PtSkew. The client defines both axes: xType says what x measures (strike or a form of moneyness), yType says what y is (an absolute vol, a ratio to the surface theoVol, or a difference from it). A moneyness x axis moves with the forward and is therefore sticky delta by construction; a Strike x axis is sticky strike. The forward uses the surface's theoRate and theoSDiv. The resolver sorts the points by x; duplicate x values, fewer than two points (four for Spline) or more than 201 points make the surface hold rather than truncate.
METADATA
| Attribute | Value |
|---|---|
| Topic | 1945-client-theos |
| MLink Token | ClientTheo |
| Product | SRTheo |
| accessType | SELECT,UPDATE,INSERT,DELETE |
| MLink Endpoint | MLink-Live |
Table Definition
| Field | Type | Key | Default Value | Comment |
|---|---|---|---|---|
| ekey_at | enum - AssetType | PRI | 'None' | expiry this curve belongs to ticker expiration must match the TheoExpirySurface key |
| ekey_ts | enum - TickerSrc | PRI | 'None' | expiry this curve belongs to ticker expiration must match the TheoExpirySurface key |
| ekey_tk | VARCHAR(12) | PRI | '' | expiry this curve belongs to ticker expiration must match the TheoExpirySurface key |
| ekey_yr | SMALLINT UNSIGNED | PRI | 0 | expiry this curve belongs to ticker expiration must match the TheoExpirySurface key |
| ekey_mn | TINYINT UNSIGNED | PRI | 0 | expiry this curve belongs to ticker expiration must match the TheoExpirySurface key |
| ekey_dy | TINYINT UNSIGNED | PRI | 0 | expiry this curve belongs to ticker expiration must match the TheoExpirySurface key |
| theoModel | VARCHAR(16) | PRI | '' | client theo model name must match the TheoExpirySurface key |
| clientFirm | VARCHAR(16) | PRI | '' | client firm this theo model is associated with controls visibility |
| ticker_at | enum - AssetType | 'None' | underlier ticker same as ekeyticker kept for filtering and joins | |
| ticker_ts | enum - TickerSrc | 'None' | underlier ticker same as ekeyticker kept for filtering and joins | |
| ticker_tk | VARCHAR(12) | '' | underlier ticker same as ekeyticker kept for filtering and joins | |
| xType | enum - TheoXType | 'None' | Strike x is a strike SimpleMoney strike fwd 1 RTMoney SimpleMoney sqrtyears VolRTMoney SimpleMoney axisVol sqrtyears LogStdMoney lnstrike fwd axisVol sqrtyears | |
| yType | enum - TheoYType | 'None' | Vol y is a volatility AtmRatio y the surface level theoVol after its vol path and SR blend AtmDiff level y | |
| axisVol | FLOAT | -99 | scaling vol for VolRTMoney and LogStdMoney 99 the surface level | |
| interp | enum - TheoInterp | 'Spline' | interpolation between points Spline needs four or more points or Linear two or more | |
| extrap | enum - TheoExtrap | 'Flat' | beyond the first and last point Flat holds the end value Extend continues the end slope | |
| timestamp | DATETIME(6) | '1900-01-01 00:00:00.000000' | timestamp of last modification the surfaces maxAgeDays applies to the older of the two timestamps | |
| PointList | JSON | 'JSON_ARRAY()' |
PRIMARY KEY DEFINITION (Unique)
| Field | Sequence |
|---|---|
| ekey_tk | 1 |
| ekey_yr | 2 |
| ekey_mn | 3 |
| ekey_dy | 4 |
| ekey_at | 5 |
| ekey_ts | 6 |
| theoModel | 7 |
| clientFirm | 8 |
JSON Block (PointList)
| Field | Type | Comment |
|---|---|---|
| x | enum - x | x coordinate in xType units |
| y | enum - y | y value in yType units |
SELECT TABLE EXAMPLE QUERY
SELECT *
FROM `SRTheo`.`MsgTheoExpiryPtSkew`
WHERE
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE','CRDT','GCR','SWAP','ENT','MBS','SET','LOAN') */
`ekey_at` = 'NONE'
AND
/* Replace with a ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFEC','ICEFEF','CEQT','TSX','TMX','CRCY','CMDY','DTI','SOVN','SR_US','SR_EU','SR_AP','SR_UK','USD','EUR','GBP','CHF','JPY','CAD','AUD','HKD','KRW','INR','SGD','TWD','CNY','CNH','BRL','MXN','ZAR','SEK','NOK','DKK','PLN','ILS','TRY','NZD','THB','MYR','IDR','PHP','CZK','HUF','SAR','AED','CLP','COP') */
`ekey_ts` = 'NONE'
AND
/* Replace with a VARCHAR(12) */
`ekey_tk` = 'Example_ekey_tk'
AND
/* Replace with a SMALLINT UNSIGNED */
`ekey_yr` = 123
AND
/* Replace with a TINYINT UNSIGNED */
`ekey_mn` = 1
AND
/* Replace with a TINYINT UNSIGNED */
`ekey_dy` = 1
AND
/* Replace with a VARCHAR(16) */
`theoModel` = 'Example_theoModel'
AND
/* Replace with a VARCHAR(16) */
`clientFirm` = 'Example_clientFirm';
UPDATE TABLE EXAMPLE QUERY
UPDATE `SRTheo`.`MsgTheoExpiryPtSkew`
SET
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE','CRDT','GCR','SWAP','ENT','MBS','SET','LOAN') */
`ticker_at` = 'NONE',
/* Replace with a ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFEC','ICEFEF','CEQT','TSX','TMX','CRCY','CMDY','DTI','SOVN','SR_US','SR_EU','SR_AP','SR_UK','USD','EUR','GBP','CHF','JPY','CAD','AUD','HKD','KRW','INR','SGD','TWD','CNY','CNH','BRL','MXN','ZAR','SEK','NOK','DKK','PLN','ILS','TRY','NZD','THB','MYR','IDR','PHP','CZK','HUF','SAR','AED','CLP','COP') */
`ticker_ts` = 'NONE',
/* Replace with a VARCHAR(12) */
`ticker_tk` = 'Example_ticker_tk',
/* Replace with a ENUM('None','Strike','SimpleMoney','RTMoney','VolRTMoney','LogStdMoney') */
`xType` = 'NONE',
/* Replace with a ENUM('None','Vol','AtmRatio','AtmDiff') */
`yType` = 'NONE',
/* Replace with a FLOAT */
`axisVol` = 1.23,
/* Replace with a ENUM('None','Spline','Linear') */
`interp` = 'NONE',
/* Replace with a ENUM('None','Flat','Extend') */
`extrap` = 'NONE',
/* Replace with a DATETIME(6) */
`timestamp` = '2022-01-01 12:34:56.000000',
/* Replace with a JSON */
`PointList` = '{"key": "value"}'
WHERE
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE','CRDT','GCR','SWAP','ENT','MBS','SET','LOAN') */
`ekey_at` = 'NONE'
AND
/* Replace with a ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFEC','ICEFEF','CEQT','TSX','TMX','CRCY','CMDY','DTI','SOVN','SR_US','SR_EU','SR_AP','SR_UK','USD','EUR','GBP','CHF','JPY','CAD','AUD','HKD','KRW','INR','SGD','TWD','CNY','CNH','BRL','MXN','ZAR','SEK','NOK','DKK','PLN','ILS','TRY','NZD','THB','MYR','IDR','PHP','CZK','HUF','SAR','AED','CLP','COP') */
`ekey_ts` = 'NONE'
AND
/* Replace with a VARCHAR(12) */
`ekey_tk` = 'Example_ekey_tk'
AND
/* Replace with a SMALLINT UNSIGNED */
`ekey_yr` = 123
AND
/* Replace with a TINYINT UNSIGNED */
`ekey_mn` = 1
AND
/* Replace with a TINYINT UNSIGNED */
`ekey_dy` = 1
AND
/* Replace with a VARCHAR(16) */
`theoModel` = 'Example_theoModel'
AND
/* Replace with a VARCHAR(16) */
`clientFirm` = 'Example_clientFirm';
INSERT TABLE EXAMPLE QUERY
INSERT INTO `SRTheo`.`MsgTheoExpiryPtSkew`(
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE','CRDT','GCR','SWAP','ENT','MBS','SET','LOAN') */
`ekey_at`,
/* Replace with a ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFEC','ICEFEF','CEQT','TSX','TMX','CRCY','CMDY','DTI','SOVN','SR_US','SR_EU','SR_AP','SR_UK','USD','EUR','GBP','CHF','JPY','CAD','AUD','HKD','KRW','INR','SGD','TWD','CNY','CNH','BRL','MXN','ZAR','SEK','NOK','DKK','PLN','ILS','TRY','NZD','THB','MYR','IDR','PHP','CZK','HUF','SAR','AED','CLP','COP') */
`ekey_ts`,
/* Replace with a VARCHAR(12) */
`ekey_tk`,
/* Replace with a SMALLINT UNSIGNED */
`ekey_yr`,
/* Replace with a TINYINT UNSIGNED */
`ekey_mn`,
/* Replace with a TINYINT UNSIGNED */
`ekey_dy`,
/* Replace with a VARCHAR(16) */
`theoModel`,
/* Replace with a VARCHAR(16) */
`clientFirm`,
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE','CRDT','GCR','SWAP','ENT','MBS','SET','LOAN') */
`ticker_at`,
/* Replace with a ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFEC','ICEFEF','CEQT','TSX','TMX','CRCY','CMDY','DTI','SOVN','SR_US','SR_EU','SR_AP','SR_UK','USD','EUR','GBP','CHF','JPY','CAD','AUD','HKD','KRW','INR','SGD','TWD','CNY','CNH','BRL','MXN','ZAR','SEK','NOK','DKK','PLN','ILS','TRY','NZD','THB','MYR','IDR','PHP','CZK','HUF','SAR','AED','CLP','COP') */
`ticker_ts`,
/* Replace with a VARCHAR(12) */
`ticker_tk`,
/* Replace with a ENUM('None','Strike','SimpleMoney','RTMoney','VolRTMoney','LogStdMoney') */
`xType`,
/* Replace with a ENUM('None','Vol','AtmRatio','AtmDiff') */
`yType`,
/* Replace with a FLOAT */
`axisVol`,
/* Replace with a ENUM('None','Spline','Linear') */
`interp`,
/* Replace with a ENUM('None','Flat','Extend') */
`extrap`,
/* Replace with a DATETIME(6) */
`timestamp`,
/* Replace with a JSON */
`PointList`
)
VALUES(
'NONE',
'NONE',
'Example_ekey_tk',
123,
1,
1,
'Example_theoModel',
'Example_clientFirm',
'NONE',
'NONE',
'Example_ticker_tk',
'NONE',
'NONE',
1.23,
'NONE',
'NONE',
'2022-01-01 12:34:56.000000',
'{"key": "value"}'
);
DELETE TABLE EXAMPLE QUERY
DELETE FROM `SRTheo`.`MsgTheoExpiryPtSkew`
WHERE
/* Replace with a ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY','RATE','CRDT','GCR','SWAP','ENT','MBS','SET','LOAN') */
`ekey_at` = 'NONE'
AND
/* Replace with a ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','SCE','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFEC','ICEFEF','CEQT','TSX','TMX','CRCY','CMDY','DTI','SOVN','SR_US','SR_EU','SR_AP','SR_UK','USD','EUR','GBP','CHF','JPY','CAD','AUD','HKD','KRW','INR','SGD','TWD','CNY','CNH','BRL','MXN','ZAR','SEK','NOK','DKK','PLN','ILS','TRY','NZD','THB','MYR','IDR','PHP','CZK','HUF','SAR','AED','CLP','COP') */
`ekey_ts` = 'NONE'
AND
/* Replace with a VARCHAR(12) */
`ekey_tk` = 'Example_ekey_tk'
AND
/* Replace with a SMALLINT UNSIGNED */
`ekey_yr` = 123
AND
/* Replace with a TINYINT UNSIGNED */
`ekey_mn` = 1
AND
/* Replace with a TINYINT UNSIGNED */
`ekey_dy` = 1
AND
/* Replace with a VARCHAR(16) */
`theoModel` = 'Example_theoModel'
AND
/* Replace with a VARCHAR(16) */
`clientFirm` = 'Example_clientFirm';
Doc Columns Query
SELECT * FROM SRTheo.doccolumns WHERE TABLE_NAME='TheoExpiryPtSkew' ORDER BY ordinal_position ASC;